package com.gdzn.signal.domain;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.gdzn.common.core.annotation.Excel;
import com.gdzn.common.mybatis.web.entity.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 电柜信息对象 
 *
 * @author administrator
 * @date 2024-05-07
 */
@Schema(name = "电柜信息实体对象",description = "")
@Data
@TableName("dev_cabinet")
public class DevCabinet extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键(电柜设备ID)
     */
    @Excel(name = "电柜设备ID")
    @Schema(title = "主键(电柜设备ID)")
    private String id;

    /**
     * 电柜名称
     */
    @Excel(name = "电柜名称")
    @Schema(title = "电柜名称")
    private String cabinetName;

    /**
     * 设备型号
     */
    @Excel(name = "设备型号")
    @Schema(title = "设备型号")
    private String cabinetModel;

    /**
     * 仓门总数
     */
    @Excel(name = "仓门总数")
    @Schema(title = "仓门总数")
    private Integer cabinCount;

    /**
     * 设备类型：1充电柜，2换电柜
     */
    @Excel(name = "设备类型")
    @Schema(title = "设备类型：1充电柜，2换电柜")
    private String cabinetType;

    /**
     * 品牌
     */
    @Excel(name = "品牌")
    @Schema(title = "品牌")
    private String brandName;

    /**
     * 型号
     */
    @Excel(name = "型号")
    @Schema(title = "型号")
    private String modelName;

    /**
     * 在线状态
     */
    @Schema(title = "在线状态")
    private Integer online;

    /**
     * imsi
     */
    @Excel(name = "imsi")
    @Schema(title = "imsi")
    private String imsi;

    /**
     * iccid
     */
    @Excel(name = "iccid")
    @Schema(title = "iccid")
    private String iccid;

    /**
     * 运营商
     */
    @Excel(name = "运营商")
    @Schema(title = "运营商")
    private String merchantName;

    /**
     * msisdn
     */
    @Excel(name = "msisdn")
    @Schema(title = "msisdn")
    private String msisdn;

    /**
     * SIM卡供应商
     */
    @Excel(name = "SIM卡供应商")
    @Schema(title = "SIM卡供应商")
    private String supplierName;

    /**
     * 供应商名称
     */
    @Excel(name = "供应商名称")
    @Schema(title = "供应商名称")
    private String providerName;

    /**
     * 出厂日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出厂日期", width = 30, dateFormat = "yyyy-MM-dd")
    @Schema(title = "出厂日期", example = "yyyy-MM-dd HH:mm:ss")
    private Date produceDate;


    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("cabinetName", getCabinetName())
                .append("cabinetModel", getCabinetModel())
                .append("cabinCount", getCabinCount())
                .append("cabinetType", getCabinetType())
                .append("brandName", getBrandName())
                .append("modelName", getModelName())
                .append("online", getOnline())
                .append("imsi", getImsi())
                .append("iccid", getIccid())
                .append("merchantName", getMerchantName())
                .append("msisdn", getMsisdn())
                .append("supplierName", getSupplierName())
                .append("providerName", getProviderName())
                .append("produceDate", getProduceDate())
                .append("deleted", getDeleted())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
